Currently, to share a single global address with a plurality of terminals installed in a home, a company, and the like, a network address port translation (NAPT) is widely used (see “IP Network Address Translator (NAT) Terminology and Considerations” by P. Srisuresh et al., in August, 1999, IETF, <http://www.ietf.org/rfc/rfc2663.txt?number=2663>).
Also, a network address translation-protocol translation (NAT-PT) is known as a method of interconnecting networks using different protocols, more particularly, interconnecting a network using Internet protocol version 4 (IPv4) and a network using Internet protocol version 6 (IPv6), as a protocol (see “Network Address Translation—Protocol Translation (NAT-PT)” by G. Tsirtsis et al., in February, 2000, IETF, <http://www.ietf.org/rfc/rfc2766.txt?number=2766>).
These NAPT and NAT-PT enable interconnection between different networks by appropriately converting a port number of an IP header and a transmission control protocol (TCP)/user datagram protocol (UDP) header. However, in addition to the IP header and the TCP/UDP header, an address and a port number are described in a payload according to an application. In this case, when realizing NAPT and NAT-PT, there is a need to rewrite an address and port number information in the payload part in addition to the IP header and the TCP/UDP header.
The above conversion function is referred to as an application level gateway (ALG). Even in the case of the ALG, a position where the address or the port number is described is different in the payload according to the application. Accordingly, a rewrite rule needs to be defined for each application.
Specifically, a session initiation protocol (SIP) message needs rewrite of the payload part. JP-A-2005-073302 enables interconnection using the SIP message in an environment of using NAT-PT by converting the SIP message.
In the meantime, a real time streaming protocol (RTSP) is a protocol controlling streaming delivery of a voice, a video signal, and the like, and also corresponds to a protocol where information needing conversion is written in the payload part. In the case of the RTSP, a client port number to be used for a real-time transport protocol (RTP)/RTP control protocol (RTCP) is described in a message of a SETUP method. Accordingly, the SETUP message needs to be rewritten by an RTSP-ALG in an environment where NAPT processing or NAT-PT is performed.
In this case, when a number of digits of a client port number transferred to the payload by a client is different from a number of digits of a port number assigned by NAPT processing, a segment length of TCP is different with respect to before conversion and after conversion.
When the segment length of TCP changes, an acknowledgment number with respect to a corresponding message and a sequence number of a subsequent packet may also change. This is because a value in which the TCP segment length is added to the sequence number is used as the acknowledgement number. Also, this is because a value in which this TCP segment length is added to a previous sequence number is used as the sequence number.
To consistently maintain a session, a converter for performing NAPT processing or NAT-PT needs to have a difference list with respect to the sequence number and the acknowledgement number, and then needs to rewrite the sequence number and the acknowledgement number with respect to a packet received thereafter (see “network address translation-protocol translation (NAT-PT)”). Once the segment length of TCP changes, it may affect a sequence number of a subsequent TCP packet. Accordingly, the above conversion processing is required until the session is terminated.
In the case of RTSP, two types of deliveries such as UDP delivery and interleave (IL) delivery are specified as a delivery method. Among them, the IL delivery superimposes RTP/RTCP data on a TCP session for an RTSP control message. Accordingly, when the segment length changes, conversion cost of the sequence number and the acknowledgement number may increase significantly.
JP-A-2009-015392 discloses a study that may not decrease a transfer rate when a packet is lost by transmitting a proxy ACK in addition to the aforementioned difference list.